#define PI 3.14159265358979

	screen 0,400,480

	frame = 0
	start = 0
	pos 130,200 :mes "V[eBO"
	objsize 100,40:pos 150,240:button "start",*game
	objsize 100,40:pos 150,300:button "end",*syuryo

stop
*game
	start = 1
	cls 0
	goto *game1
*game1
	if(start == 1){
	//摜ǂݍ
	buffer 2
	picload "hiko-ki.bmp"
	gsel 0
	mytm=0 ;@e 0:˂ĂȂ 1:˂Ă
	mytmx=0 : mytmy=0	;@e̍W

	buffer 3
	picload "hiko-kiteki.bmp"
	gsel 0

	buffer 4
	picload "boss.bmp"
	gsel 0
	
	buffer 5
	picload "tama.bmp"
	gsel 0
	//ʉǂݍ
	mmload "tm2_slash003.wav",0,0
	mmload "tm2_hit005.wav",1,1
	
	//X^[gʒuw
	life = 2
	x = 200.0
	y = 400.0
	muki = 0	;G̈ړ
	tate = 0	;G̈ړ
	tama = 0
	item = 0
	teki = 0	;G̕`Ɋւϐ
	tkazu = 0	;G̕`Ɋւϐ
	time = 0
	time1 = 0
	xiti = 0	;Gʒu̓̕ϐ
	yiti = 0	;Gʒu̓̕ϐ
	tframe = 0	;ẽAj[V
	lframe = 0	;eɂ铮쐧
	ltime = 0	;eɂ铮쐧
	atcnt = 0	;eɂ铮쐧
	keysousa = 0	;eɂ铮쐧
	ugoki = 0	;Aj[Vp̕ϐ
	ugokit = 0	;Aj[Vp̕ϐ
	ugokit1 = 0	;Aj[Vp̕ϐ
	bsidou = 0	;{X̓͂߁BJb`B[
	blife = 100	;{X̃CtB100łˁB
	emode = 0	;{X̃[hύXpϐ
	bossx = 0	;{XXW
	bossy = 0	;{XYW
	bmuki = 0	;{XXẄړ̌
	btate = 0	;{XYẄړ̌
	endframe = 0;Iɂ\Lׂ̈ɕKvȎԂׂ̈̕ϐ
	endframe = 0;Iɂ\Lׂ̈ɕKvȎԂׂ̈̕ϐ
	//e񏉊
	maxbullet = 10000
	maxbullet2 = 10000
	maxbullet3 = 10000
	//{Xl̂ełB
	dim c ,maxbullet2
	dimtype c_x ,vartype("double"),maxbullet2
	dimtype c_y ,vartype("double"),maxbullet2
	dimtype c_x1 ,vartype("double"),maxbullet2
	dimtype c_y1 ,vartype("double"),maxbullet2
	dimtype c_xn ,vartype("double"),maxbullet2
	dimtype c_yn ,vartype("double"),maxbullet2
	dimtype c_xn1 ,vartype("double"),maxbullet2
	dimtype c_yn1 ,vartype("double"),maxbullet2
	dimtype c_xn2 ,vartype("double"),maxbullet2
	dimtype c_yn2 ,vartype("double"),maxbullet2
	dimtype c_vx ,vartype("double"),maxbullet2
	dimtype c_vy ,vartype("double"),maxbullet2
	
	dim b ,maxbullet
	dimtype b_x  ,vartype("double"),maxbullet
	dimtype b_y  ,vartype("double"),maxbullet
	dimtype b_vx  ,vartype("double"),maxbullet
	dimtype b_vy  ,vartype("double"),maxbullet

	dim b_type ,maxbullet
	dim b_time ,maxbullet
	dimtype b_ang,vartype("double"),maxbullet

}
goto *main
//C[v
*main	

	//ʃNA
	color 255,255,255
	boxf

//e\
if (mytm==1){
	pos mytmx,mytmy
	gcopy 2,32,16,8,8
}
	//@̈ړ
	stick key,15
	if(keysousa == 0){
	if(key & 1) : x = x - 3.0 : if x<16 : x=16
	if(key & 2) : y = y - 3.0 : if y<16 : y=16
	if(key & 4) : x = x + 3.0 : if x>384 : x=384
	if(key & 8) : y = y + 3.0 : if y>464 : y=464
}
	//\͗]
	if(frame\30 == 0){
		g=100
		t1=0.001*rnd(3141)
		repeat g
			t = PI*2*cnt /g + t1
			
			gosub *search
			if(number != -1&&emode=0){
				//Ge̔
				b(number) = 1
				b_x(number) = 200.0
				b_y(number) = 75.0

				b_vx(number) = cos(t) * 4.0
				b_vy(number) = sin(t) * 4.0

				b_type(number) = 1 + cnt\2
				b_ang(number) = t
				b_time(number) =0
					//{X̂{ɂȂB
		if(blife <= 50){
			c(number) = 1
			c_x(number) = bossx+16
			c_y(number) = bossy+72
			c_x1(number) = bossx+76
			c_y1(number) = bossy+72
			c_xn(number) = bossx+46
			c_yn(number) = bossy+82
			c_xn1(number) = bossx+46
			c_yn1(number) = bossy+82
			c_xn2(number) = bossx+46
			c_yn2(number) = bossy+82
			

			c_vx(number) = 1
			c_vy(number) = 3

			}
		loop
}
}

gosub *tmchk

	//Gëړ
		repeat maxbullet
		if( b(cnt) == 1&&emode == 0){
			b_x(cnt) = b_x(cnt) + b_vx(cnt) 
			b_y(cnt) = b_y(cnt) + b_vy(cnt)
					//Gëړ2
		if(blife <= 50){
		if( c(cnt) == 1&&emode == 0){
			c_x(cnt) = c_x(cnt)
			c_y(cnt) = c_y(cnt) + c_vy(cnt)
			c_x1(cnt) = c_x1(cnt)
			c_y1(cnt) = c_y1(cnt) + c_vy(cnt)
			c_xn(cnt) = c_xn(cnt) + c_vx(cnt)
			c_yn(cnt) = c_yn(cnt) + c_vy(cnt)
			c_xn1(cnt) = c_xn1(cnt) - c_vx(cnt)
			c_yn1(cnt) = c_yn1(cnt) + c_vy(cnt)
			c_xn2(cnt) = c_xn2(cnt)
			c_yn2(cnt) = c_yn2(cnt) + c_vy(cnt)
						if( c_x(cnt)<-8 || c_y(cnt)<-8 || c_x(cnt)>408 || c_y(cnt)>488 ) : c(cnt) = 0
						if( c_x1(cnt)<-8 || c_y1(cnt)<-8 || c_x1(cnt)>408 || c_y1(cnt)>488 ) : c(cnt) = 0
						if( c_xn(cnt)<-8 || c_yn(cnt)<-8 || c_xn(cnt)>408 || c_yn(cnt)>488 ) : c(cnt) = 0
						if( c_xn1(cnt)<-8 || c_yn1(cnt)<-8 || c_xn1(cnt)>408 || c_yn1(cnt)>488 ) : c(cnt) = 0
						if( c_xn2(cnt)<-8 || c_yn2(cnt)<-8 || c_xn2(cnt)>408 || c_yn2(cnt)>488 ) : c(cnt) = 0									//蔻
			dx1 = x - c_x(cnt) : dy1 = y - c_y(cnt)
			dx1*=dx1 : dy1*=dy1
			dx2 = x - c_x1(cnt) : dy2 = y - c_y1(cnt)
			dx2*=dx2 : dy2*=dy2
			dx3 = x - c_xn(cnt) : dy3 = y - c_yn(cnt)
			dx3*=dx3 : dy3*=dy3
			dx4 = x - c_xn1(cnt) : dy4 = y - c_yn1(cnt)
			dx4*=dx4 : dy4*=dy4
			dx5 = x - c_xn2(cnt) : dy5 = y - c_yn2(cnt)
			dx5*=dx5 : dy5*=dy5
			//蔻͈̔
			if(atcnt == 0 && dx5 + dy5 <= 16.0){
				//e
				 mmplay 0
				 b(cnt) = 0
				 c(cnt) = 0
				 ltime = frame
				 life -= 1
				 atcnt = 1
			}
			//蔻͈̔
			if(atcnt == 0 && dx4 + dy4 <= 16.0){
				//e
				 mmplay 0
				 b(cnt) = 0
				 c(cnt) = 0
				 ltime = frame
				 life -= 1
				 atcnt = 1
			}
			//蔻͈̔
			if(atcnt == 0 && dx3 + dy3 <= 16.0){
				//e
				 mmplay 0
				 b(cnt) = 0
				 c(cnt) = 0
				 ltime = frame
				 life -= 1
				 atcnt = 1
			}
			//蔻͈̔
			if(atcnt == 0 && dx2 + dy2 <= 16.0){
				//e
				 mmplay 0
				 b(cnt) = 0
				 c(cnt) = 0
				 ltime = frame
				 life -= 1
				 atcnt = 1
			}
			if(atcnt == 0 && dx1 + dy1 <= 16.0){
				 //e
				 mmplay 0
				 b(cnt) = 0
				 c(cnt) = 0
				 ltime = frame
				 life -= 1
				 atcnt = 1
			}
			if(atcnt == 1||emode == 0){
				if(100>=frame-ltime){
					b(cnt) = 0
					c(cnt) = 0
					x = 200.0
					y = 400.0
					keysousa = 1
				atcnt = 1}
				else{
					atcnt = 0
					keysousa = 0
					}
				}
			}
}

			//Gȅ
			if(b_type(cnt)==1){
				if(b_time(cnt)==60){
					b_ang(cnt)+=PI/2
					b_vx(cnt) = cos(b_ang(cnt)) * 1.0
					b_vy(cnt) = sin(b_ang(cnt)) * 1.0
				}

			}else : if(b_type(cnt)==2){
				if(b_time(cnt)==60){
					b_ang(cnt)-=PI/2
					b_vx(cnt) = cos(b_ang(cnt)) * 1.0
					b_vy(cnt) = sin(b_ang(cnt)) * 1.0
				}
			}


			

			if( b_x(cnt)<-8 || b_y(cnt)<-8 || b_x(cnt)>408 || b_y(cnt)>488 ) : b(cnt) = 0

			//蔻
			dx = x - b_x(cnt) : dy = y - b_y(cnt)
			dx*=dx : dy*=dy
			//蔻͈̔
			if(atcnt == 0 && dx + dy <= 16.0){
				 //e
				 mmplay 0
				 b(cnt) = 0
				 c(cnt) = 0
				 ltime = frame
				 life -= 1
				 atcnt = 1
			}
			if(atcnt == 1){
				if(100>=frame-ltime){
					b(cnt) = 0
					c(cnt) = 0
					x = 200.0
					y = 400.0
					keysousa = 1
				atcnt = 1}
				else{
					atcnt = 0
					keysousa = 0
					}
		}
					

			b_time(cnt)++
	}
	loop





	//t[JE^[̕\
	color 0,0,0
	pos 0,0
	mes frame

	//@̕`	
	color 255,0,255
	pos x-16,y-16
	gmode 4,32,32,255
	gcopy 2,0,0
	
	if (tkazu <= 4){
		fx=100
		fy=50//G̏ʒu
		//ړ
		if (muki == 0){
			fx+=(frame-time)}
		if (muki == 0 && 300 < fx){
			muki = 1
			time = frame
			xiti = fx}
		if (muki == 1){
			fx = xiti-32
			fx -=(frame-time)} 
		if (muki == 1 && fx < 16){
			muki = 0
			time = frame}
			//cړ
		if (tate == 0){
			fy+=(frame-time1)}
		if (tate == 0 && 250 < fy){
			tate = 1
			time1 = frame
			yiti = fy
		}
		if (tate == 1){
			fy = yiti
			fy -=(frame-time1)}
		if (tate == 1 && fy < 32){
			tate = 0
			time1 = frame}
		}
	//else
	//G̃Aj[V
	if(ugoki == 0){
		ugokit = frame
		ugoki = (ugokit-ugokit1)/10
		byousya = 0}
			if(ugoki == 1){
				ugokit = frame
				ugoki = (ugokit-ugokit1)/10
				byousya = 1}
			if(ugoki == 2){
				byousya = 2
				ugokit1 = frame
				ugoki = 0}
		
		
	//G@̕`1
	if (teki == 0){
	color 255,0,255
	pos fx,fy
	if(byousya == 0){
	gcopy 3,0,96,32,32}
	if(byousya == 1){
	gcopy 3,32,96,32,32}
	if(byousya == 2){
	gcopy 3,64,96,32,32}
}
	//G@̕`2
	if (teki == 1){
	color 255,0,255
	pos fx-20,fy-20
	if(byousya == 0){
	gcopy 3,0,96,32,32}
	if(byousya == 1){
	gcopy 3,32,96,32,32}
	if(byousya == 2){
	gcopy 3,64,96,32,32}
}
	//G@̕`3
	if (teki == 2){
	color 255,0,255
	pos fx+50,fy+50
	if(byousya == 0){
	gcopy 3,0,96,32,32}
	if(byousya == 1){
	gcopy 3,32,96,32,32}
	if(byousya == 2){
	gcopy 3,64,96,32,32}
}
	//G@̕`4
	if (teki == 3){
	color 255,0,255
	pos fx-50,fy-50
	if(byousya == 0){
	gcopy 3,0,96,32,32}
	if(byousya == 1){
	gcopy 3,32,96,32,32}
	if(byousya == 2){
	gcopy 3,64,96,32,32}
}
	//G@̕`5
	if (teki == 4){
	color 255,0,255
	pos fx+70,fy+70
	if(byousya == 0){
	gcopy 3,0,96,32,32}
	if(byousya == 1){
	gcopy 3,32,96,32,32}
	if(byousya == 2){
	gcopy 3,64,96,32,32}
}
	//G̓蔻1
	if (teki == 0 && 324 > (fx-mytmx+16)*(fx-mytmx+16)+(fy-mytmy+16)*(fy-mytmy+16)){
		mmplay 0
	mytm = 0
	teki += 1
	tkazu += 1
		}
	//G̓蔻2
	if (teki == 1 && 324 > (fx-20-mytmx+16)*(fx-20-mytmx+16)+(fy-20-mytmy+16)*(fy-20-mytmy+16)){
		mmplay 0
	mytm = 0
	teki += 1
	tkazu += 1
		}
	//G̓蔻3
	if (teki == 2 && 324 > (fx+50-mytmx+16)*(fx+50-mytmx+16)+(fy+50-mytmy+16)*(fy+50-mytmy+16)){
		mmplay 0
	mytm = 0
	teki += 1
	tkazu += 1
		}
	//G̓蔻4
	if (teki == 3 && 324 > (fx-50-mytmx+16)*(fx-50-mytmx+16)+(fy-50-mytmy+16)*(fy-50-mytmy+16)){
		mmplay 0
	mytm = 0
	teki += 1
	tkazu += 1
		}
	//G̓蔻5
	if (teki == 4 && 324 > (fx+70-mytmx+16)*(fx+70-mytmx+16)+(fy+70-mytmy+16)*(fy+70-mytmy+16)){
		mmplay 0
	mytm = 0
	teki += 1
	tkazu += 1
	bsidou = 1
		}
		//{X̓蔻
		if (teki == 5 && 1400 > (bossx-mytmx+46)*(bossx-mytmx+46)+(bossy-mytmy+43)*(bossy-mytmy+43)){
		mmplay 0
	mytm = 0
	blife -= 1
		}
		//{X
		if (tkazu == 5&&blife >= 0){
	color 255,0,255
	pos bossx,bossy
	gcopy 4,48,64,92,92
	}
	//{X̓Ђف[B
	if (bsidou == 1){
		if(bmuki == 0){
		bossx += 1}
		if(bossx == 318){
			bmuki = 1}
			if(bmuki == 1){
				bossx -= 1}
			if(bossx == 0){
				bmuki = 0}
			}
		if(blife <= 0 && bmode == 0){
			emode = 1
}
//I
		if(life == 0){
			mmstop
		endframe1 = endframe1 + 1
		b(cnt) = 0
		c(cnt) = 0
		if(endframe1<=100){
			cls 0
		pos 150,280
		mes "cOEEE"
		}
		else{
			end
		}
	}
	if(emode == 1){
		mmstop
		endframe = endframe + 1
		b(cnt) = 0
		c(cnt) = 0
		if(endframe<=100){
			cls 0
			pos 150,280
			mes "߂łƂ"
	b(cnt) = 0
	c(cnt) = 0
	c_x(cnt) = 0}
	else{
		end}
	}
		
	//e̕`
	repeat maxbullet
		if( b(cnt) == 1){
			pos b_x(cnt)-8 ,b_y(cnt)-8
			gmode 4,8,8,255
			gcopy 2,32,0
		}
	loop

	//{Xe̕`恩
	repeat maxbullet2
		if( c(cnt) == 1){
			pos c_x(cnt)-8 ,c_y(cnt)-8
			gmode 4,8,8,255
			gcopy 2,32,0
		}
	loop
		//{Xe̕`
	repeat maxbullet2
		if( c(cnt) == 1){
			pos c_x1(cnt)-8 ,c_y1(cnt)-8
			gmode 4,8,8,255
			gcopy 2,32,0
		}
	loop
			//{Xe̕`撆E
	repeat maxbullet2
		if( c(cnt) == 1){
			pos c_xn(cnt)-8 ,c_yn(cnt)-8
			gmode 4,8,8,255
			gcopy 2,32,0
		}
	loop

		//{Xe̕`撆
	repeat maxbullet2
		if( c(cnt) == 1){
			pos c_xn1(cnt)-8 ,c_yn1(cnt)-8
			gmode 4,8,8,255
			gcopy 2,32,0
		}
	loop
		//{Xe̕`撆
	repeat maxbullet2
		if( c(cnt) == 1){
			pos c_xn2(cnt)-8 ,c_yn2(cnt)-8
			gmode 4,8,8,255
			gcopy 2,32,0
		}
	loop

	//ʍXV
	redraw 1
	redraw 0
	await 5


	frame = frame + 1
	
	goto *main

*search
	number = -1
	repeat maxbullet
		if( b(cnt) != 1) : number = cnt : break
		if( c(cnt) != 1) : number = cnt : break
	loop

	return

*tmchk
	getkey key,17 : if (key)&(mytm<=0) : mytm+=1 : mytmx=x : mytmy=y
	if mytm<=1 : mytmy-=10
	if mytmy<-16 : mytm=0
	return
*syuryo
	end
	